Goto

Collaborating Authors

 programming paradigm


Towards a unified framework for programming paradigms: A systematic review of classification formalisms and methodological foundations

arXiv.org Artificial Intelligence

The rise of multi-paradigm languages challenges traditional classification methods, leading to practical software engineering issues like interoperability defects. This systematic literature review (SLR) maps the formal foundations of programming paradigms. Our objective is twofold: (1) to assess the state of the art of classification formalisms and their limitations, and (2) to identify the conceptual primitives and mathematical frameworks for a more powerful, reconstructive approach. Based on a synthesis of 74 primary studies, we find that existing taxonomies lack conceptual granularity, a unified formal basis, and struggle with hybrid languages. In response, our analysis reveals a strong convergence toward a compositional reconstruction of paradigms. This approach identifies a minimal set of orthogonal, atomic primitives and leverages mathematical frameworks, predominantly Type theory, Category theory and Unifying Theories of Programming (UTP), to formally guarantee their compositional properties. We conclude that the literature reflects a significant intellectual shift away from classification towards these promising formal, reconstructive frameworks. This review provides a map of this evolution and proposes a research agenda for their unification.


Simulation Streams: A Programming Paradigm for Controlling Large Language Models and Building Complex Systems with Generative AI

arXiv.org Artificial Intelligence

We introduce Simulation Streams, a programming paradigm designed to efficiently control and leverage Large Language Models (LLMs) for complex, dynamic simulations and agentic workflows. Our primary goal is to create a minimally interfering framework that harnesses the agentic abilities of LLMs while addressing their limitations in maintaining consistency, selectively ignoring/including information, and enforcing strict world rules. Simulation Streams achieves this through a state-based approach where variables are modified in sequential steps by "operators," producing output on a recurring format and adhering to consistent rules for state variables. This approach focus the LLMs on defined tasks, while aiming to have the context stream remain "in-distribution". The approach incorporates an Entity-Component-System (ECS) architecture to write programs in a more intuitive manner, facilitating reuse of workflows across different components and entities. This ECS approach enhances the modularity of the output stream, allowing for complex, multi-entity simulations while maintaining format consistency, information control, and rule enforcement. It is supported by a custom editor that aids in creating, running, and analyzing simulations. We demonstrate the versatility of simulation streams through an illustrative example of an ongoing market economy simulation, a social simulation of three characters playing a game of catch in a park and a suite of classical reinforcement learning benchmark tasks. These examples showcase Simulation Streams' ability to handle complex, evolving scenarios over 100s-1000s of iterations, facilitate comparisons between different agent workflows and models, and maintain consistency and continued interesting developments in LLM-driven simulations.


Neuromorphic Programming: Emerging Directions for Brain-Inspired Hardware

arXiv.org Artificial Intelligence

The value of brain-inspired neuromorphic computers critically depends on our ability to program them for relevant tasks. Currently, neuromorphic hardware often relies on machine learning methods adapted from deep learning. However, neuromorphic computers have potential far beyond deep learning if we can only harness their energy efficiency and full computational power. Neuromorphic programming will necessarily be different from conventional programming, requiring a paradigm shift in how we think about programming. This paper presents a conceptual analysis of programming within the context of neuromorphic computing, challenging conventional paradigms and proposing a framework that aligns more closely with the physical intricacies of these systems. Our analysis revolves around five characteristics that are fundamental to neuromorphic programming and provides a basis for comparison to contemporary programming methods and languages. By studying past approaches, we contribute a framework that advocates for underutilized techniques and calls for richer abstractions to effectively instrument the new hardware class.


Functional Programming Paradigm of Python for Scientific Computation Pipeline Integration

arXiv.org Artificial Intelligence

As an interpreted programming language, Python is of the characteristics of concise syntax, flexibility on multiple programming paradigms, cross-platforms, etc. [1-3]. Its software ecosystem gets enriched, which benefits from the contributions of soaring researchers and developers studied in various fields. As with the booming development of AI techniques generally, Python has become a de facto development standard for scientific computation and AI algorithms due to not only some excel high performance libraries such as numpy, scipy, and tensorly [4-6], but also high compatibility for integrating other programming languages. Nonetheless, as the expense of exceeding flexibility and the richness of software ecosystem, it gets also challenging in integration for complicated project via Python, particularly in scientific computation used in interdisciplinary application [7-10]. Such as, most of data manipulations are generally in demands of importing third party libraries designed on basis of different specifications, which can frequently result in incompatibility problems raised by data types or such like.


Model-based Programming: Redefining the Atomic Unit of Programming for the Deep Learning Era

arXiv.org Artificial Intelligence

This paper introduces and explores a new programming paradigm, Model-based Programming, designed to address the challenges inherent in applying deep learning models to real-world applications. Despite recent significant successes of deep learning models across a range of tasks, their deployment in real business scenarios remains fraught with difficulties, such as complex model training, large computational resource requirements, and integration issues with existing programming languages. To ameliorate these challenges, we propose the concept of 'Model-based Programming' and present a novel programming language - M Language, tailored to a prospective model-centered programming paradigm. M Language treats models as basic computational units, enabling developers to concentrate more on crucial tasks such as model loading, fine-tuning, evaluation, and deployment, thereby enhancing the efficiency of creating deep learning applications. We posit that this innovative programming paradigm will stimulate the extensive application and advancement of deep learning technology and provide a robust foundation for a model-driven future.


Software 2.0. I sometimes see people refer to neural…

#artificialintelligence

I sometimes see people refer to neural networks as just "another tool in your machine learning toolbox". They have some pros and cons, they work here or there, and sometimes you can use them to win Kaggle competitions. Unfortunately, this interpretation completely misses the forest for the trees. Neural networks are not just another classifier, they represent the beginning of a fundamental shift in how we develop software. The "classical stack" of Software 1.0 is what we're all familiar with -- it is written in languages such as Python, C, etc.


How to code in Python(using paradigms) - DEV Community 👩 💻👨 💻

#artificialintelligence

Programming Paradigms are the different approaches to solving computational problems through programming. In this article, we will be talking about programming Paradigms, why they're an important part of programming, the different programming paradigms that can be applied using python, and how to apply them. Before we delve into programming paradigms, it is crucial to understand the meaning of Paradigms in its basic form, unrelated to computer science, paradigms are essentially the models, guidelines or patterns by which certain objectives are achieved, analogically, they can be likened to how scaffolding serves as the basic structure for buildings. Programming Paradigms are the different styles which a program can be written in a certain programming language, they are the different ways in which code in a given programming language (like Python, Java, JavaScript, etc) can be organised. In simple words, every programming language has a special way (methodologies) in which it's code can be structured and run and these are called programming paradigms, some programming languages only support the use of one paradigm, these are called single paradigm languages while others support multiple paradigms, these are called multi paradigm languages.


Python: Pros versus Cons. A true breakdown of the pros and cons…

#artificialintelligence

Easy to learn and use: Python has a simple and readable syntax, which makes it easy to learn and use for beginners. It also has a large and active community of developers who contribute to the language and share knowledge and resources online. High-level language: Python is a high-level language, which means it abstracts away many of the underlying technical details of a computer and allows programmers to focus on solving problems rather than on the low-level details of the machine. Wide range of libraries and frameworks: Python has a vast ecosystem of libraries and frameworks that cover a wide range of domains, including scientific computing, data analysis, machine learning, web development, and more. This makes it possible to tackle a wide range of tasks using Python. Its interactive interpreter allows users to test code snippets and ideas quickly, making it easy to iterate and improve on ideas.


AI (Artificial Intelligence) Words You Need To Know

#artificialintelligence

In 1956, John McCarthy setup a ten-week research project at Dartmouth University that was focused on a new concept he called "artificial intelligence." The event included many of the researchers who would become giants in the emerging field, like Marvin Minsky, Nathaniel Rochester, Allen Newell, O.G. Selfridge, Raymond Solomonoff, and Claude Shannon. Yet the reaction to the phrase artificial intelligence was mixed. Did it really explain the technology? Was there a better way to word it?


📱Flutter Roadmap & Resource Guide -- 2021

#artificialintelligence

Flutter is booming nowadays after the arrival of Flutter 2.0,announced in Flutter Engage held 0n March 03 2021 in which Flutter team announced that web version and desktop versions of the Windows, Linux and MacOS were promoted to the stable channel. It means you can create desktop,web and mobile apps using single codebase . Let's discuss in detail the roadmap that I am following in order to efficiently learn flutter development . To understand which things are important to learn in this section lets first look at the nature and programming paradigms of dart . Functional programming is a programming paradigm where programs are constructed by applying and composing functions.